1. Field of the Invention
This invention relates generally to detection and decoding of encoded digital information stored on a storage medium or received from a communication medium. In particular the present invention relates to an improved maximum likelihood sequence detector applicable to such storage or communication applications.
2. Discussion of Related Art
Storage systems store and retrieve data on a storage medium. Communications systems transmit and receive data via a communication medium. Storage and communication systems utilize similar techniques to encode data for storage and retrieval or for transmission and reception. Data is encoded into a form in which it may be easily manipulated in such storage or communication systems. Most modern applications of such systems encode data as numeric or digital information. Discrete numeric values are used to represent user data.
The storage medium or communication medium does not directly manipulate such digital data. Rather, these media store or transmit analog signals representative of the digital data. For example, computer systems often use magnetic storage media on which encoded digital information is represented as magnetic flux changes. Certain identified sequences of flux changes, when detected, are representative of corresponding sequences of digital data. In like manner, communication systems receive information transmitted via the communication medium such as electromagnetic radiation (i.e., radio or microwave frequency radiation). Certain sequences of changes in the communication medium state are representative of corresponding digital data transmitted between a transmitter and receiver.
The data embodied in the analog signals of the medium are then received or retrieved to decode the signals and reproduce the encoded digital data. In a storage system in particular, the encoded signals are said to be read from the storage medium. In a communication system, the encoded signals are usually referred to as being received from the transmitter. A circuit that reads or receives the encoded data and reproduces the original digital data is often referred to as a read channel. In general, a read channel includes a transducer component that senses the analog signal and digital processing components that detect sequences of changes in the sensed signal that represent encoded digital data. For example, a read channel in a magnetic storage device includes a magnetic read head that senses the magnetic flux changes and produces electric current therefrom. The electric signal from the read head is a continuous analog waveform. The digital data encoded in such an analog continuous waveform must therefore be detected and decoded from the essentially continuous analog signal. In general, certain peaks in the continuous waveform represent the encoded digital data.
In an ideal theoretical environment, each magnetic flux change could be representative of a corresponding bit (binary digitxe2x80x94a value of zero or one). Sequences of such zeros and ones may then be recorded on and retrieved from the magnetic medium as sequences of adjacent magnetic flux changes. However, in practice as the density of such recorded information increases, the physical proximity of one recorded bit to the next adjacent bit tends to cause interference between the adjacent bits. This interference is often referred to as inter-symbol interference (or ISI). In storage applications, adjacent magnetic flux changes can cause such inter-symbol interference. Optical storage applications are also affected by such ISI concerns as the physical proximity of optically encoded bits on a storage medium is decreased to thereby increase storage density. Similar interference issues affect communication applications as distinct from storage applications. The speed of signals applied to a communication medium can cause interference problems in sensors adapted to receive the signals.
It is known in storage and communication arts to encode the digital data so that only specified sequences of transitions of the medium are permitted. These permitted sequences are known to reduce the effects of inter-symbol interference. In particular, it is common to use run-length-limited (RLL) encoding of the digital data to generate an RLL-encoded stream of bits to be read by the read channel digital processing means. This encoded stream of bits is often referred to as channel bits in that they represent the stream of bits encountered by the read channel components of the device. It may be desirable in certain applications to assure that there be no fewer than xe2x80x9cd+1xe2x80x9d bit times between any two transitions of the medium. This constraint can help keep interference effects among the pulses caused by the analog read channel sensing of transitions to a manageable level. On the other hand it is often the case that timing information is extracted from the read channel sensed pulses to help maintain synchronization in reading lengthy sequences of such pulses. It may also be desirable therefore that there be no more than xe2x80x9ckxe2x80x9d zeros between any two transitions of the medium. In other words, there must be a medium transition at least every k+1 bit times.
An RLL(d,k) code is used to encode an arbitrary set of data bits into a stream of channel bits such that the encoded channel bits satisfy the xe2x80x9cdxe2x80x9d and xe2x80x9ckxe2x80x9d constraints. A wide variety of encodings that satisfy a given (d,k) constraint may be used and several such encodings are well known in the storage and communication arts.
Read channels associated with storage devices or communication devices sense the encoded information stored or transmitted on the medium and decode the original data bits from the sensed pulses and the RLL (or other) encoding employed. In general, read channels attempt to sense pulses read from the medium by periodically sampling the present value of a transducer adapted to sense the recorded or transmitted medium state changes. Each periodic sample of the continuous waveform signal produced by a transducer is a digital value indicative of the amplitude of the continuous signal at a corresponding sample time. A sequence of such samples are then used by digital signal processing means to detect state transitions and hence the encoded channel bits and corresponding user data bits in the continuous signal represented by the sampled values.
Due to the analog nature of the waveform sensed by the read head (or receiver) and due to the inter-symbol interference problems noted above, it is a problem to accurately sense and decode the encoded user data bits. The problem is particularly exacerbated as communication speed or storage density increases.
To partially resolve such problems, it is known to use sequence detectors to sense particular expected sequences of pulses rather than attempting to detect each discrete individual pulse in the sampled waveform. In particular, Viterbi sequence detectors do not attempt to decide whether or not a particular medium transition has occurred immediately upon receipt of sample(s) that correspond to that transition. Rather, as samples are taken from the analog read signal, the Viterbi sequence detector keeps a running tally of the error between the actual sample sequence and each of one or more possible expected sequences corresponding to acceptable codes for the particular RLL encoding employed. The running error tally is maintained for each of a number of possible encoded sequences. As more samples are gathered, less likely sequences are pruned from the xe2x80x9ctreexe2x80x9d of possible sequences. The maximum length of possible sequences that need be tracked may be constrained to a particular value for a particular application and encoding. When so constrained, the Viterbi sequence detector may eventually select a sequence having a high degree of probability as the detected sequence of encoded channel bits.
It is recently known in the art to apply such Viterbi sequence detectors to read channels used in optical storage media. Optical storage media record encoded data using optical techniques whereby the reflectivity (or other optical parameters) of a spot on the medium is altered to record a bit value. As in magnetic storage applications, sequences of such recorded bits are arranged on the medium so that the recorded bits pass under an optical sensor as the medium is rotated. A laser light source aimed at the medium is reflected back to the optical sensor. The output of the optical sensor is coupled to the signal processing means of a read channel in like manner to that of known magnetic recording techniques. A Viterbi sequence detector is then used in conjunction with other functional blocks of the read channel to sense most likely sequences of encoded channel bits.
The sampling of the continuous waveform and the Viterbi sequence detector are both tuned to recognize pulses in the continuous waveform that closely model an ideal, expected pulse shapexe2x80x94a partial response target. Because of differences in the recording and associated sensing techniques, actual continuous waveform pulses for magnetic storage devices are notably different from those of optical storage devices. If a partial response target is not well tuned to the actual pulse shape and timing, the Viterbi sequence detector will be less capable than desired of accurately detecting sequences of encoded channel bits. As noted above, such problems are magnified when storage density or communication speeds are increased.
It is known in signal processing to describe a waveform as a superposition combination of a sequence of discrete time sampled values of the waveform. An algebraic notation has been developed to describe such discrete time sampled systems.
In this notation, xe2x80x9cDNxe2x80x9d denotes a discrete sampled value xe2x80x9cDxe2x80x9d of the waveform delayed by xe2x80x9cWxe2x80x9d sample periods. In other words D0 (typically denoted simply as xe2x80x9c1xe2x80x9d) is the present sample value. D or D1 is the previous discrete sampled value (sample once delayed), D2 is a next previous sampled value (sample twice delayed), Do is a next older previous sampled value, etc. The superposition of such discrete sampled values is then described by algebraic notation as polynomials having a variable D. Products, sums and differences of combinations of DN sampled values therefore represent various partial response target pulse shapes.
In view of the above discussion, it is evident that a need exists for a read channel tuned to a preferred partial response target more closely matched to the pulses generated in optical storage read channel applications.
Further as noted above, as storage density increases or as communication speeds increase, the demands on read channel digital signal processing speed increases proportionally. In particular, Viterbi sequence detectors need to recognize potentially complex sequences at ever faster speeds. Further, sequences to be recognized by the sequence detector may be more complex in, for example, optical storage applications where the partial response target may require more complex sequences be recognized.
In view of the above discussion, it is evident that a need exists for improved performance in maximum likelihood sequence detectors as applied in storage or communication read channel technologies.
As read channels are now being applied to optical storage systems as well as magnetic storage systems and communication systems, it is a problem that each application tends to require special features and digital signal processing. Such special requirements have been handled by use of read channels customized to each particular application. It is therefore a problem that customized versions of read channel circuits proliferate in the industry. Such proliferation of slight variations of read channel designs overly complicates the task of user applications and designs. For example, a single user may utilize read channels for various types of media within a single storage device. In such cases, present read channel designs would require two distinct read channel circuits to optimally manipulate various types of storage media.
In particular, it is a problem in read channels to provide flexibility in the filtering or shaping of input signals. It may be preferred that sampled signals be biased or filtered in one manner for a first purpose in the read channel and in a second manner for a another purpose within the read channel. Specifically, a circuit referred to as a slicer is often used to detect when the sampled values cross a specific threshold value. The sequence detector, on the other hand, processes sequences of sampled values to detect sequences of pulses and to decode data encoded therein. These two functions of the read channel device may benefit from different shaping of the sampled waveform represented by the sequence of sampled values. A slicer circuit provides rapid detection of the sampled signals but may have a high bit error rate. In other words, it is fast at detecting sampled waveforms but not accurate. This may be useful for certain functional blocks such as timing recovery where encoded data on a storage medium is intended to initialize, reset or operate the functional block. A typical example may be data sequences encoded on the storage medium intended to initialize and operate a phase lock loop. By contrast, a sequence detector is very accurate at detecting sampled waveforms but imposes a significant delay (latency) on processing the sample waveform values. This form of detection may be more useful in sampling stored system or user data where accuracy is more important than the latency of detection.
Present read channel designs do not offer the flexibility to perform different waveform shaping for different processing purposes within the read channel.
In view of the above discussion, it is evident that a need exists for an improved read channel design that provides for flexibility in applications and in particular provides for selectable waveform shaping features to be applied to different functions within the read channel.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing an improved read channel design which provides, at once, improved sequence detection through use of a partial response target well suited to optical storage applications, improved performance in sequence detection for high performance applications, and flexible design permitting the features of the read channel to be applied to a wide variety of applications.
A first aspect of the present invention provides for adaptation of the read channel to a partial response target well suited to pulse waveforms typical of optical storage applications. In general, the target magnitude response of the invention is not a monotonic decreasing function. Rather, the partial response target of the invention includes at least one relative minimum in the power spectrum of the ideal response. In the preferred embodiment, the partial response target has a spectral null between zero and the Nyquist frequency (Fs/2, half the sampling frequency). Such a partial response target defines a first portion of the partial response target and a second portion with the spectral null between zero and Fs/2. It has been observed that the first portion of the partial response target is useful to more closely match the ideal response of pulses read from an optical storage medium and that the second portion is largely irrelevant with respect to detecting sequences of pulses sensed from optical media.
Still more specifically, in the preferred embodiment, the scaled target polynomial as expressed in D-transform notation is:
H(D)=8(1+D+D2+D)=8(1+D)(1+D2)
This target is referred to herein as PR1 FS4 because it is a partial response target having spectral nulls at both the Nyquist frequency (Fs/2) and half the Nyquist frequency (Fs/4).
In a second aspect of the invention, a Viterbi sequence detector is structured so as to process two samples at once. Block processing of multiple samples improves the performance of the sequence detector so as to accommodate higher data rates common in present communication and high-density storage applications. In general, Viterbi sequence detectors include logic to track the likelihood of multiple possible candidate sequences each of which might correspond to the sequence of waveform samples. The computational complexity of the sequence detector is therefore primarily a function of the number of discrete samples used to detect a pulse (i.e., the number of delayed samples in the superposition equation represented by the D-transform notation polynomial). Most sequence detectors correspond to state machines in which the number of states grows (exponentially) with the complexity of the D-transform polynomial. Increasing the number of states therefore increases the computational complexity of the sequence detector by increasing the number of candidate sequences that must be retained at each step and the amount of branch and path metric computation.
The present invention includes sequence detection using multiple samples and includes features to simplify the computational complexity of the state machine implementing the sequence detector. The present invention therefore provides block-oriented processing of multiple samples to improve sequence detection for high performance applications while reducing the computational complexity of such processing.
A third aspect of the present invention improves the flexibility in utilizing the read channel of the present invention in a variety of applications. In particular, the present invention provides for selectively applying additional filtering to equalize signals to a preferred shape for the slicer and to a preferred shape for application to the sequence detector. In like manner, the present invention further provides for selectively applying a DC offset to bias signals to a preferred level for application to the slicer and to a preferred level for application to the sequence detector.